草庐IT

objective-c - GCD 和异步 NSURLConnection

全部标签

c# - 我应该对每个返回任务的方法使用异步/等待吗

这个问题在这里已经有了答案:Whyuseasyncandreturnawait,whenyoucanreturnTaskdirectly?(8个答案)关闭4个月前。假设我有一个C#Controller,它调用某个返回任务的任意函数(例如,因为它执行数据库事务)。我应该始终使用async和await,还是应该只返回任务?示例Controller:publicasyncTaskDoSomething(){returnawaitSomeOtherFunctionThatReturnsATask();}我应该把它改成:publicTaskDoSomething(){returnSomeOthe

c# - 为什么 WebClient.DownloadStringTaskAsync() 会阻塞? - 新的异步 API/语法/CTP

由于某种原因,下面的程序启动后有一个暂停。我相信WebClient().DownloadStringTaskAsync()是原因。classProgram{staticvoidMain(string[]args){AsyncReturnTask();for(inti=0;iDownloadAndReturnTaskStringAsync(){returnawaitnewWebClient().DownloadStringTaskAsync(newUri("http://www.weather.gov"));}}据我所知,我的程序应该立即从0开始计数到​​15。我做错了什么吗?原始Net

c# - 异步线程安全从 MemoryCache 获取

我创建了一个使用.NETMemoryCache的异步缓存。这是代码:publicasyncTaskGetAsync(stringkey,Func>populator,TimeSpanexpire,objectparameters){if(parameters!=null)key+=JsonConvert.SerializeObject(parameters);if(!_cache.Contains(key)){vardata=awaitpopulator();lock(_cache){if(!_cache.Contains(key))//Checkagainbutlockedthist

c# - 等待最后一次时不必要的异步/等待?

我最近一直在处理asyncawait(阅读所有可能的文章,包括Stephen和Jon的最后两章),但我已经得出结论,但我不知道它是否是100%正确。-因此我的问题。因为async只允许出现await这个词,所以我将把async放在一边。AFAIU,等待就是延续。与其编写功能性(连续)代码,不如编写同步代码。(我喜欢将其称为可回调代码)因此,当编译器到达await时-它会将代码拆分为2个部分,并注册第二部分以在第一部分完成后执行(我不知道为什么这个词未使用callback-这正是完成的操作)。(同时工作-线程回来做其他事情)。但是看看这段代码:publicasyncTaskProcess

c# - 我以为 Object.Equals(Object, Object) 支持按位相等而不是值相等

静态方法Object.Equals(Object,Object)支持引用类型的引用相等和值类型的按位相等,其中按位相等比较的对象具有相同的二进制表示,而比较的值相等对象具有相同的值,即使它们具有不同的二进制表示形式。例如,由于i1和b1是不同的类型,它们没有相同的二进制表示,因此Object.Equals(Object,Object)返回false:inti1=100;byteb1=100;Console.WriteLine(Object.Equals(i1,b1));//falseObject.Equals(Object,Object)在比较d1和d2时也应该返回false(因为这两

c# - 异步 CTP - 如何使用异步/等待调用 wcf 服务?

如果我调用WCF服务方法,我将执行如下操作:proxy.DoSomethingAsync();proxy.DoSomethingAsyncCompleted+=OnDoSomethingAsyncCompleted;我如何使用新的async做同样的事情?CTP?我想我需要类似proxy.DoSomethingTaskAsync的东西或proxy.DoSomethingAsync().ToTask()?Web服务调用需要返回Task能够使用await关键字,但如何?? 最佳答案 在CTP中,有一些工厂方法可以将常规APM函数(开始/结

c# - 如何在 C# 中从 System.Array 转换为 object[]

我有一个COM函数需要object[]作为参数:foo(object[]values)我想将一些enum字段传递给它,所以我使用以下内容:object[]fields=(object[])Enum.GetValues(typeof(SomeEnumType));但是,当我尝试将fields传递给foo(...)时,即[foo(fields)]我得到一个错误:"Unabletocastobjectoftype`SomeEnumType[]'totype'system.Object[]'.谁能告诉我我做错了什么? 最佳答案 如异常所述,

c# - 如何在设计时避免 XAML 代码中出现 "object reference not set to an instance of an object"异常?

我自己设计的wpf用户控件有问题。问题是,当我在我的程序中实现用户控件时,在设计时XAML代码中出现objectreferencenotsettoaninstanceofanobject异常。设计师向我展示了以下信息:atMicrosoft.Expression.Platform.InstanceBuilders.InstanceBuilderOperations.InstantiateType(Typetype,BooleansupportInternal)atMicrosoft.Expression.Platform.InstanceBuilders.ClrObjectInstan

c# - 带有异步 lambda 和 Task.WaitAll 的 Task.Factory.StartNew

我正在尝试对任务列表使用Task.WaitAll。问题是任务是一个异步lambda,它会破坏Tasks.WaitAll,因为它从不等待。这是一个示例代码块:Listtasks=newList();tasks.Add(Task.Factory.StartNew(async()=>{using(dbContext=newDatabaseContext()){varrecords=awaitdbContext.Where(r=>r.Id=100).ToListAsync();//dolongcpuprocesshere...}}Task.WaitAll(tasks);//domorestuf

c# - 将 List<T> 转换为 List<object>

我对泛型类有疑问。我有这样的东西:publicabstractclassIGroup:IEnumerablewhereT:class{protectedListgroupMembers;protectedListgroupIGameActionList;publicIGroup(){groupMembers=newList();groupIGameActionList=newList();//groupIGameActionList.Add(newDieGameAction(groupMembers));}}第二类:classDieGameAction:IGameAction{List